<%@ Page Language="C#" MasterPageFile="~/MasterPages/Learning.Master" AutoEventWireup="true" CodeBehind="WebClientSoftwareFactory.aspx.cs" Inherits="Mindscape.BackgroundMotion.Website.Learn.WebClientSoftwareFactory" Title="Code: Learn about the Web Client Software Factory" %>
<asp:Content ID="Content3" ContentPlaceHolderID="BodyContent" runat="server">

    <p>
    The Web Client Software Factory is a guidance offering from the Microsoft Patterns & Practices team that provides comprehensive architecture guidance to help customers build Composite Web Clients using the Microsoft platform (ASP.NET 2.0 and Workflow Foundation, etc).
    Additionally it supplies the Composite Web application block which assists in building web applications in a Composite Application fashion.
    </p>

    <br />
    <div align="center">
        <a href="/Learn/PlayVideo.aspx?v=Nugget2" target="page" onClick="window.open('','page','toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=450,height=350,titlebar=yes')"><img border="0" src="/Images/Dev/VideoNugget2.jpg" /></a><br />
        <p>Watch as Andrew talks about how we used the Web Client Software Factory</p>    
    </div>
    <br />
    
    <h2>What it provides</h2>
    
    <ul>
        <li>Application Blocks and Libraries</li>
        <li>Visual Studio 2005 extensions for automating common tasks. Guidance Automation Overview</li>
        <li>How-to topics and QuickStarts</li>
        <li>Architecture guidance and Patterns for Web Client Applications</li>
        <li>Reference Implementation (a sample applications using the Factory)</li>
        <li>Training content (Hands-On-Labs, demos, etc) (under development)</li>
    </ul>
    
    <h2>Composite Web Applications</h2>

    <p>
    A composite Web application is a Web application that is composed of a number of discrete and independent pieces. These pieces are integrated together within a Web server environment; they are presented to the user in a Web browser as a fully coherent Web client solution. The Composite pattern is a popular and recurring theme because it provides a flexible and scalable architecture that provides several key benefits, including the following:    
    </p>

    <ul>
        <li>It allows a higher degree of separation between application infrastructure and business logic.</li>
        <li>It allows more independent development of the individual business logic components themselves.</li>
        <li>It provides solution agility because business logic components can be flexibly combined to quickly yield a specific solution.</li>
        <li>It promotes code re-use because it allows business logic components and the application infrastructure to be re-used across multiple solutions.</li>
        <li>It provides an excellent architecture for the front-end integration of line-of-business systems or service-oriented systems into a task-oriented user experience.</li>
    </ul>

    <h2>Strong Patterns Support</h2>

    <p>
    In BackgroundMotion we leveraged the Composite Web application block to provide us with a structured approach towards development. 
    The Composite Web application block implements the <a href="ModelViewPresenter.aspx">Model View Presenter</a> presentation pattern as well as allowing for
    <a href="InversionOfControl.aspx">Inversion of Control</a> through a ServiceLocator implementation.
    </p>
    
    <h2>Where can I find out more information?</h2>
    
    <ul>
        <li><a href="http://www.codeplex.com/websf">Download the Web Client Software Factory</a> from Codeplex</li>
        <li>Read more from the <a href="http://msdn2.microsoft.com/en-us/practices/default.aspx">Patterns and Practices</a> team at the Developer Center</li>
    </ul>   
    
</asp:Content>
